{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Advanced Circuits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:22.790689Z",
     "start_time": "2021-07-31T04:57:20.366197Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from qiskit import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Opaque gates"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:22.795419Z",
     "start_time": "2021-07-31T04:57:22.792399Z"
    }
   },
   "outputs": [],
   "source": [
    "from qiskit.circuit import Gate\n",
    "\n",
    "my_gate = Gate(name='my_gate', num_qubits=2, params=[])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:22.809920Z",
     "start_time": "2021-07-31T04:57:22.798318Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: &quot;Courier New&quot;,Courier,monospace\">     ┌──────────┐            \n",
       "q_0: ┤0         ├────────────\n",
       "     │  my_gate │┌──────────┐\n",
       "q_1: ┤1         ├┤0         ├\n",
       "     └──────────┘│  my_gate │\n",
       "q_2: ────────────┤1         ├\n",
       "                 └──────────┘</pre>"
      ],
      "text/plain": [
       "     ┌──────────┐            \n",
       "q_0: ┤0         ├────────────\n",
       "     │  my_gate │┌──────────┐\n",
       "q_1: ┤1         ├┤0         ├\n",
       "     └──────────┘│  my_gate │\n",
       "q_2: ────────────┤1         ├\n",
       "                 └──────────┘"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qr = QuantumRegister(3, 'q')\n",
    "circ = QuantumCircuit(qr)\n",
    "circ.append(my_gate, [qr[0], qr[1]])\n",
    "circ.append(my_gate, [qr[1], qr[2]])\n",
    "\n",
    "circ.draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Composite Gates"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:35.232865Z",
     "start_time": "2021-07-31T04:57:35.219747Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: &quot;Courier New&quot;,Courier,monospace\">     ┌───┐                       \n",
       "q_0: ┤ H ├──■────────────────────\n",
       "     └───┘┌─┴─┐     ┌───────────┐\n",
       "q_1: ─────┤ X ├──■──┤0          ├\n",
       "          └───┘┌─┴─┐│  sub_circ │\n",
       "q_2: ──────────┤ X ├┤1          ├\n",
       "               └───┘└───────────┘</pre>"
      ],
      "text/plain": [
       "     ┌───┐                       \n",
       "q_0: ┤ H ├──■────────────────────\n",
       "     └───┘┌─┴─┐     ┌───────────┐\n",
       "q_1: ─────┤ X ├──■──┤0          ├\n",
       "          └───┘┌─┴─┐│  sub_circ │\n",
       "q_2: ──────────┤ X ├┤1          ├\n",
       "               └───┘└───────────┘"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Build a sub-circuit\n",
    "sub_q = QuantumRegister(2)\n",
    "sub_circ = QuantumCircuit(sub_q, name='sub_circ')\n",
    "sub_circ.h(sub_q[0])\n",
    "sub_circ.crz(1, sub_q[0], sub_q[1])\n",
    "sub_circ.barrier()\n",
    "sub_circ.id(sub_q[1])\n",
    "sub_circ.u(1, 2, -2, sub_q[0])\n",
    "\n",
    "# Convert to a gate and stick it into an arbitrary place in the bigger circuit\n",
    "sub_inst = sub_circ.to_instruction()\n",
    "\n",
    "qr = QuantumRegister(3, 'q')\n",
    "circ = QuantumCircuit(qr)\n",
    "circ.h(qr[0])\n",
    "circ.cx(qr[0], qr[1])\n",
    "circ.cx(qr[1], qr[2])\n",
    "circ.append(sub_inst, [qr[1], qr[2]])\n",
    "\n",
    "circ.draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Circuits are not immediately decomposed upon conversion `to_instruction` to allow circuit design at higher levels of abstraction.\n",
    "When desired, or before compilation, sub-circuits will be decomposed via the `decompose` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:37.297451Z",
     "start_time": "2021-07-31T04:57:37.287919Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: &quot;Courier New&quot;,Courier,monospace\">     ┌─────────┐                                        \n",
       "q_0: ┤ U2(0,π) ├──■─────────────────────────────────────\n",
       "     └─────────┘┌─┴─┐     ┌───┐          ░ ┌───────────┐\n",
       "q_1: ───────────┤ X ├──■──┤ H ├────■─────░─┤ U(1,2,-2) ├\n",
       "                └───┘┌─┴─┐└───┘┌───┴───┐ ░ └───┬───┬───┘\n",
       "q_2: ────────────────┤ X ├─────┤ Rz(1) ├─░─────┤ I ├────\n",
       "                     └───┘     └───────┘ ░     └───┘    </pre>"
      ],
      "text/plain": [
       "     ┌─────────┐                                        \n",
       "q_0: ┤ U2(0,π) ├──■─────────────────────────────────────\n",
       "     └─────────┘┌─┴─┐     ┌───┐          ░ ┌───────────┐\n",
       "q_1: ───────────┤ X ├──■──┤ H ├────■─────░─┤ U(1,2,-2) ├\n",
       "                └───┘┌─┴─┐└───┘┌───┴───┐ ░ └───┬───┬───┘\n",
       "q_2: ────────────────┤ X ├─────┤ Rz(1) ├─░─────┤ I ├────\n",
       "                     └───┘     └───────┘ ░     └───┘    "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "decomposed_circ = circ.decompose() # Does not modify original circuit\n",
    "decomposed_circ.draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameterized circuits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:40.495951Z",
     "start_time": "2021-07-31T04:57:39.017413Z"
    },
    "tags": [
     "nbsphinx-thumbnail"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAswAAAExCAYAAABoNfRAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA/xklEQVR4nO3deXhUVb72/W9VJRDmwYCReQyQQMI8CgmOBO3jBByB46OIYkfQVvQ5aiMiIqA0iud6VGxfsOlJVAJHbRpsB0hEA8ogyBwmCdEgyDyEQFJ5/9hNIAhVlaSq1q6q+3NduUh27Vr7dplU/Wrttdd2lJSUlCAiIiIiIpflNB1ARERERMTOVDCLiIiIiHiggllERERExAMVzCIiIiIiHqhgFhERERHxQAWziIiIiIgHKphFRERERDxQwSwiIiIi4oEKZhERERERD1Qwi4iIiIh4oIJZRERERMQDFcwiIiIiIh6oYBYRERER8UAFs4iIiIiIByqYRUREREQ8UMEsIiIiIuKBCmYREREREQ9UMIuIiIiIeKCCWURERETEAxXMIiIiIiIeRJkOICJSWdu2bfO6z+uvv864ceM87tO+fXt/RQpb6msRiUQaYRaRiPDGG2+YjhAx1NciEm5UMIuIiIiIeKCCWURERETEAxXMIhIRMjIyTEeIGOprEQk3KphFRERERDxQwSwiEWHIkCGmI0QM9bWIhBstK+fFojXw4xEzx25cD+7sbubYIuIf25fBiQNmjl2rIbS7zsyxRcQ/TNUhlalBHnvsMdavX+/XPL7q3Lkzr732mt/bVcHsxY9HYJehNzsRCX0nDsDRPNMpRCRUhWIdsn79erKyskzH8CtNyRCRiDB27FjTESKG+lpEwo0KZhGJCN7uPCf+o74WkXCjgllEIsKAAQNMR4gY6msRCTeawywiEeHgwYOmI1zRE7NT2bp3JS5XNE6ni7h6LRlx/QRSkoeajlYhdu5rEZGKUMEsImIDI2+YyMgbnqW4uIiPsl9n+rsjaNO4C41j25iOJiIS8TQlQ0QiQkJCgukIPnG5okjr9SDF7iJ2/bTedJwKCZW+FhHxlUaYRSQiLFy40HQEn5wrOsvi7NkANImNN5ymYkKlr0XEHpo2bUq/fv3o2rUrDRo0oKSkhH379rF27VpWrFjBkSO/Xoj6rrvuYsyYMdxxxx2cPn064BlVMItIRHjuued44YUXTMe4one/mMqCrJkUFJ7A5Ypm/NA5tGqUBMDSb+fy+dq/lu6bf3g3nVr255kRfzcV1yO797WI2MP111/PE088QVpa2hX3OXPmDO+//z4zZsxgy5YtgFUsv/fee0RFRXH33XfzzjvvBDyrradkuN1uZs6cSdu2bYmJiSE5OZmsrCzatWvHmDFjTMe7rIwXU/n2wxd93m4Xpwph2RZ4+Z/w7ELr38ytcPqs6WQi/rFgwQLTETwacf0EPpxylIznf6Fn+8Fs2Lm89LG0nqN5JT2TV9IzmTDyPWKq1GDUoKkG03pm974W8dWuA/Dnr2DSIuvrz1/BbpvfRCQU6pA6derwzjvv8Pnnn5OWlkZBQQH/+Mc/mDRpEvfffz8PPPAAL7/8MpmZmVSpUoV7772X7777jgkTJjB06NDSYnnq1KlBKZbB5iPMo0ePZtGiRUycOJFu3bqRnZ3N8OHDOXjwIOPHjzcdL2z8fBze+ByOF1zYduoMfLgOMrfBuBsgtpa5fCKRpFb1eowfOod7X2pN9qaP6NvxttLH3G430+ePZHTadOLqtzAXUiTMlZTA4vXwxRZwACX/3r5+L3y3F25MhFs6m8sXyq6++mo+//xzOnbsSEFBAVOnTmX27NkcPnz4svu3atWKp556ijFjxvDiiy/idrtxOp1MnTqVZ599Nmi5bVswz58/n3nz5pGZmUlKSgoAAwcOZN26dSxatIiuXbsaThgeit3w1jI4cabs9vMvDscK4I/L4ZlbwWnr8xEi4aN29frc1X8873zye3on/Abnv//4/vrZZFrGdaJfx9vNBhQJc6v3WMUyXHg/vPj7zzbD1XWge8tgJwtt1apV41//+hcdO3Zk8+bN3HnnneTk5Hh8zu7du3nooYfIz8/nueeew+l0smnTpqAWy2DjKRnTpk1j0KBBpcXyeW3atCE6OpqkJGtu3w8//EBKSgrx8fF06tSJFStWmIgbsjbmwZFT1qfpyykpgYMnYOtPwc0l4m9ZWVmmI5TLHf1/x+Hj+Xy29i8ArNvxBWtzPuXBW2YYTuZdqPW1yMVKSqwpig4P+ziw9rnSe6dc3tSpU0lOTmb79u2kpqZ6LZbPu+uuu5gwYQIOh4PCwkI6duzI8OHDA5y2LEdJif3+d+fl5dG0aVPmzp3L/fffX+ax4cOHs23bNr777jsAbr75Zm677TYefvhhsrOzGTp0KHv27KFKlSoej+FwePpTuOCuCctp0iHV5+wZL6ayf9c3uKKrltl+7sxJet/5PD1v9/0TUd7WTBZOHejz/hVxc/pfie99N07XlU82uN3FbPnyT3wx58GAZhGpqMcff9zrPrt27aJ169Ye95k1a5a/IpWa+dvlJLdOrVQbh4/v58k/DmTa6KXlmoqxYVcmT77l39cQO/e1iD/UbtCCUbP2+LTvO79rzolDuQHNY6oO8XcN0qlTJ9avX4/b7aZXr16sW7fOp+ddfIHf1KlT2bNnD3PmzOHQoUM0a9asUitklKcEtuWUjLy8PADi4uLKbC8oKCArK6v0aspffvmFr776io8//hiAvn370qhRI5YvX87NN98c3NAX6XnbhF/9Qma8mGomjBdRVWt436mkhOgq1QMfRiSAPv74Y5+KPTv62+dTOHXmGH94/77SbU0btOOxIX80F8qDUO5rkWhf3hf/LaqqPd8b7ViHjBs3DqfTyZtvvlnhYvn8NIwHHniA3r17M2LECObMmRPI2KVsWTDHxsYCkJOTw+DBg0u3z5gxg/z8fLp16wZAbm4uV199NVWrXvgU1bJlS/bu3ev1GL5+qvh/n1lXyZqQkpJKxouBPQHw8TpYttXzPk5XFI+MGcHSN0YENItIRW3bts3rPrNmzfK6us6rr77qr0il1rwHR/Mq18ajd77Bo3e+Ue7npaSkUjLbv68hdu5rEX8oOGutFlXs9ryfywk//bCVmOjA5jFVh1SmBklNTS0zNSs6OpqRI0cC8Prrr/vUxpWK5fNt9O7dm/vuu+9XBXNKSgqZmZkVyu2JLQvmVq1akZSUxLRp06hfvz6NGzcmIyODJUuWAJQWzFJ5vdt4L5gBens+uyoiIhIWqlWBLs1h7Z6yF/xdzAF0a0HAi+Vw0bFjR2rUqMH27dvZvn271/09FcsAixcvBqx6MCoqiqKiooDkvpgtL/pzOp0sWLCAxMRE0tPTGTVqFLGxsYwdOxaXy1V6wV+zZs34+eefKSwsLH3unj17aN68uanoIadhbUhp73mf6xOgfs3g5BEJlMmTJ5uOEDHU1xLqBnWyCufLXe7kcED1qnBzp+DnClXJyckAPk3F8FYsAxw7doydO3cSExNDu3bt/J73cmw5wgwQHx/P8uXLy2y75557SEhIoFq1aoA1daNfv37MnTu39KK/H3/8kYEDA3uhnCdDns0s13Y7uK2r9Sl52RY4V3xhe5UouCHRWm9SJNQNGzbMdISIob6WUBdbCx69Cf6eDfsuWR64aT0Y2Q+usulAkh3rkAMHDrB48WK++uorj/v179/fa7F83uLFi2nVqhXnzp3zd9zLsm3BfDlr1qyhd+/eZba99dZb3Hfffbz22mtUqVKF+fPne10hQ8pyOiAtCQZ2gKc/sLbd0xc6NoGqOt0kYaJDhw5s3erD/CMbmbvkGTb/8DWJLfoxevB003F8Fop9LXKpuDrwRBrkHoJXP7G2PTEIml5lNlcoWrJkSem0Wk+++eYbli5dyvfff+91neVgX1gcMgXzyZMnycnJ4eGHHy6zvVWrVnz55ZeGUoWXi+diddNi7CJG7dm/iVNnjvPqw18yK2MMP+zfTIs4ne4RCbZmFxXIKpYD6+zZs9xxxx0UFxd73znIQqZgrlmzpi07UEQkEDbt+Yru8TcB0LXtjWzcs0IFs4iEPbvWeiFTMIuIVEZqaqrpCOVy4vRhFq98i4UrZnGy4CgpyaEzLzjU+lpExBsVzCISEWbPnm06QrnUql6fe29+gb6J/8GqLYs5eKySizkHUaj1tYiIN7ZcVk5ExN/S09NNRyiXji2vZeNu6/qMDbsy6dSyv+FEvgu1vhYR8UYFs4hEhEDc+SmQWsZ1JMoVzROzU4lyRYfU/OVQ62sREW80JUNExKZCaSk5EZFwphFmEREREREPVDCLSETQjTSCR30tIuFGUzK8aFwvMo8tEm4++OADI7dsrtUw6Ic0fmxTfS0SjkzVApU5bufOncv9nN25+QC0anZNme+DcWxfOEpKSkoC0rKEpMf+bv372kizOUTKY9u2bV738eV2ze3bt/dXpLClvpZIpPfGwHv65bcBeOmpMWW+twtNyRARERER8UAFs4iIiIiIByqYRSQivPnmm6YjRAz1tYiEGxXMIhIREhND58YfoU59LSLhRgWziESElJQU0xEihvpaRMKNCmYREREREQ9UMItIROjRo4fpCBFDfS0i4UYFs4hEhNWrV5uOEDHU1yISblQwi4iIiIh4oIJZRERERMQDFcwiEhEyMjJMR4gY6msRCTcqmEVEREREPFDBLCIRYciQIaYjRAz1tYiEmyjTAUREwtn2ZXDigJlj12oI7a4zc2wRkXCigllEJIBOHICjeaZTiIhIZWhKhohEhLFjx5qOEDHU1yISblQwi0hEGDdunOkIEUN9LSLhRgWz4C6Bvb/AVzkXti1cDV/nwL5D1uMioW7AgAGmI0QM9bWEg5NnYOM+WLLhwrYlG6xtJ8+YyyVmaA5zBDtbBF/vsArjX06WfWzFRcVzg1pwbTz0awtRruBmFPGXgwcPmo5wRU/MTmXr3pW4XNE4nS7i6rVkxPUTSEkeajpahdi5r0W82XcIlm2F7/dBsbvsY59usv51OSG5KQxMgKb1g59Rgk8Fc4TacxDmr4IDx73ve/AE/O9aWLkTRvSBZlcFPp9IpBl5w0RG3vAsxcVFfJT9OtPfHUGbxl1oHNvGdDSRiHCuGJZugOVbwduJ1WI3rNsL3+2F6xIgLUkDSuFOUzIi0Hd74f995luxfLH9x+B/PrVOR4mEmoSEBNMRfOJyRZHW60GK3UXs+mm96TgVEip9LXLemXPw1jJrZLk8sxBLgC+2wFvLofBcoNKJHahgjjDb8+GvX1d8XnKxG+atgJ0/+zeXSKAtXLjQdASfnCs6y+Ls2QA0iY03nKZiQqWvRQDcbnjnS9hVifXSd/4M76zQNT/hTFMyIsjpQnh3pec/6NdGWv8+9vcr71NcAn9fCU/dAjHR/s0oEijPPfccL7zwgukYV/TuF1NZkDWTgsITuFzRjB86h1aNkgBY+u1cPl/719J98w/vplPL/jwzwsMfqkF272uRi2Vth5z9nvfx5b1xez6s2A4p7f2XTezD1iPMbrebmTNn0rZtW2JiYkhOTiYrK4t27doxZswY0/FCztLv4ViBf9o6cgr+tdE/bVVGSYk1Hztrm/VC9dMR04nErhYsWGA6gkcjrp/Ah1OOkvH8L/RsP5gNO5eXPpbWczSvpGfySnomE0a+R0yVGowaNNVgWs/s3tdiRmERrP0BMrfCt7uh4KzpRHDsNPxzg/f9fLV4PRz30/us2IutR5hHjx7NokWLmDhxIt26dSM7O5vhw4dz8OBBxo8fbzpeSDlzDr7Z7d82V+6EQUlQ1dBv0b7D8Pdsa271xVo1gJF94aqaZnKJVEat6vUYP3QO977UmuxNH9G3422lj7ndbqbPH8notOnE1W9hLqRIOZSUwLIt1goThUUXtke5ILU9DE4Cp6Hhu5U7oajYf+2dK4ZVO+GmTv5rU+zBtiPM8+fPZ968eXz88cc8+eSTDBw4kAkTJtCnTx+Kioro2rWr6YghZX2utYycP505B5sMXQCYf9S6cPHny1y4uOegdXGiv0bTRYKtdvX63NV/PO988nvc7gvrWv31s8m0jOtEv463mwsnUk6fbIR/rC9bLINVqH6+GTJWG4kF+H8gKVBtinm2LZinTZvGoEGDSElJKbO9TZs2REdHk5Rkze177rnniI+Px+l0kpGRYSJqSNj7S2Da/eFQYNr1ZvF665N8yWXmY5dgnRL7YnOwU4mdZWVlmY5QLnf0/x2Hj+fz2dq/ALBuxxeszfmUB2+ZYTiZd6HW1xI4R09fWLv4SrJ3WoMgwXa8wJpe6G+HTurGJuHIlgVzXl4emzZtYujQXy/an5ubS2JiIlWrVgVg0KBBfPLJJ7qzlBc/Bmhu74+HA9OuJ8dOw5YfL18sX+ybXf491SahbfNm+36CeiU9k5E3PFtmW42Y2ix64TA397iPw8f38/qH4/j9yPlER1UxlNJ3du5rCa5vd3t/rXZgTY0ItkC9Lwa6bTHDlnOY8/LyAIiLiyuzvaCggKysLNLS0kq39e3bt0LHcDgcFQ8Ygv7PH7ZR75p2Zbadv+r3cq702KVXCH+zZgOOmztXLlw5XdO2L8Mmfe11v8IiqBvbiFNH84OQSkx6/PHHve4za9Ysr/vNmjXLX5FKzfztcpJbp1aqjb99PoVTZ47xh/fvK93WtEE7HhvyR4/Py8rKpMfwgZU69qXs3NdiPzeO+RPt+/0XTteVy41idzF/fv8T7upxaxCTQdteQxn8yAdltnl6X/T0+KXvjbfeNoSdq7W8Ynk89ZL1euZwOMp8H0gl3j7NXcSWBXNsbCwAOTk5DB48uHT7jBkzyM/Pp1u3bqaihSx3sZ8nMJ9v1x2Ydj05V+j7ObRzZ08HMIlIcDx65xs8eucbpmOIlNu5wlPgregpKaGoMPiv1YF6X7Ta1l1Mwo2jpDzldZC43W66dOlCfn4+M2fOpHHjxmRkZLBkyRJyc3NZtWoVvXr1KvOc1NRUxo0bx5AhQwyltrc5WbApz/t+vqw1ebHOzeC+/hXPVRFuN7zwkTU37kocDmu1jEduDF4uMWfbtm1e9+nQoQNbt271uE/79v5fQHXNe3DUh7+9QKjbBLrf7d827dzXYj/b82H2Mu/7/Vdf6N4y8Hku9uMR+MMS3/Yt73vjU7fANXUrFCtiPf3y2wC89NSYMt/bhS3nMDudThYsWEBiYiLp6emMGjWK2NhYxo4di8vlKr3gT3zXpH5g2m0aoHY9cTphYAfP+5SUeN9HIsvkyZNNR4gY6ms5r20cxNWx5ilfjsMBdapZgy/BFlcHogJQBUW7oGFt/7crZtmyYAaIj49n+fLlnDp1itzcXKZMmcLGjRtJSEigWrVqpuOFnI6NA9NuYpPAtOvNgHbQr631/cVn+85/+5vO0NFQNrGnYcOGmY4QMdTXcp7TAWNSoX4N6+dLC+caVeG311lrMgebywkdGvm/3Q6NrLYlvITU/9I1a9b8av7yxIkTadKkCStXruShhx6iSZMm7Nq1y1BC+2pSH5rH+rfNNldbn9BNcDhgSA94+HrodFFh3L0VjB8E1yeaySX21aFD6J1ymLvkGca/OYC5S54xHaVcQrGvJXDq14T/ewvc2R0a1buw/Ted4ZlbzU5duDY+NNoU80KmYD558iQ5OTm/umHJlClTyMvLo7CwkEOHDpGXl0fr1q0NpbS3W5L915YD6+5MJjkcEB8H91+0ouDIPtDsKnOZRPxlz/5NnDpznFcf/pLjpw/xw34t1SahKybaOjP4fy9cx8/1idYIs0nxcdD2avu2J/YRMgVzzZo1KS4u5pFHHjEdJWTFx0Hftv5pa0B7aNXQP22JyK9t2vMV3eNvAqBr2xvZuGeF4UQi4cfhgLt7QxU/rBlWNQru7uV9URAJTbZcVk4C545u8MsJyNl/+cd9uQI4oZF1Kk0klKSmppqOUC4nTh9m8cq3WLhiFicLjpKSHDrzgkOtryWyXVUTRvW3VpMqdl9+H2/vjS4njBpgTT+R8BQyI8ziH9EueCAFurWo2PN7tLKmQJi4QEOkMmbPnm06QrnUql6fe29+gVfSMxk16EVqVTewJE0FhVpfi3RoBA8NhJox5X9urRj47UBof43/c4l9qGCOQFWi4J5+1vrJdav79px6NaxCe2QfFcsSmtLT001HKJeOLa9l4+4vAdiwK5NOLYO84HklhFpfi4A1bfHpW6wBJV9mVTiw1o5++lZr+TwJb5qSEcE6N7NWmNj8I3y3F/Ydgl9OXni8QS1rneVuLaxP3059vJIQlpmZaTpCubSM60iUK5onZqeS0LwPLeJCZ+mXUOtrkfNqxlgDSrd2hpU7YdcByDsMhf++KWDVKGvVqTZXQ+/W1mCSRAYVzBHO5YSkptYXQFExnCu2pm5oJFnErNGDp5uOIBKR6tWAwf9eWcpdAmeLrBHl6ChrbWmJPCqYpYwoFcoiIiKlnA5rWTyJbDrJLiIRYevWraYjRAz1tYiEG40wi0hE+OCDD4zcsrmWwfXKTR3bVF+LiASKCmYRiQiTJk0yUsS1uy7ohzTOVF+LiASKpmSIiIiIiHiggllERERExAMVzCISEd58803TESKG+lpEwo0KZhGJCImJoXPjj1CnvhaRcKOCWUQiQkpKiukIEUN9LSLhRgWziIiIiIgHKphFJCL06NHDdISIob4WkXCjgllEIsLq1atNR4gY6msRCTcqmEVEREREPFDBLCIiIiLigQpmEYkIGRkZpiNEDPW1iIQbFcwiIiIiIh6oYBaRiDBkyBDTESKG+lpEwk2U6QAiIuFs+zI4ccDMsWs1hHbXmTm2iEg4UcEsIhJAJw7A0TzTKUREpDI0JUNEIsLYsWNNR4gY6msRCTcqmEUkIowbN850hIihvhaRcKOCWULe6cIL3585Zy6H2NuAAQNMR4gY6mu5HHcJHDl10c9uc1lEyktzmCXklJTAD79A9g7YdQAOX/QC/MwHEFsL4uOgX1toVM9cTrGXgwcPmo4QMdTXcl5hEaz7wfrad7jsoMbTH0Dj+tClOfRoCdWqmEop4p0KZgkpPx+D91bBnl8u/3gJcPCE9fX1DkhsDEN7Qt3qQY0pUi5PzE5l696VuFzROJ0u4uq1ZMT1E0hJHmo6mkiFlJTAN7vgo3VQcIUzf2eLYc9B62vxekhLgpR24NS5b7EhFcwSMlbthIzVUFSO03ibf4Tdi+GefpDQOHDZxP4SEhJMR/Bo5A0TGXnDsxQXF/FR9utMf3cEbRp3oXFsG9PRys3ufS2BVXgO/vK19frrq7NFVnG9cR+MToEaVQOXT6Qi9DlOQsLXOfDeN+Urls8rOAdzsmCTlvaKaAsXLjQdwScuVxRpvR6k2F3Erp/Wm45TIaHS1+J/Z4vgj8vLVyxfbPdBeP1zOFXofV+RYFLBLLb3wy/WyLInr420vq7EXQJ//RoOnfRvNgkdzz33nOkIPjlXdJbF2bMBaBIbbzhNxYRKX4v//e9aq+j1xNvrdf5Ra+pdSYlfo4lUiq0LZrfbzcyZM2nbti0xMTEkJyeTlZVFu3btGDNmjOl4EgRFxfDuSmtucmUVFtnvRdhOWcLdggULTEfw6N0vpnL7xLrc+vtq/OlfzzJ+6BxaNUoCYOm3c3lidmrp14ipzZj+roeKwzC793W4KCmx12vI9nxYudM/bW3Mg+/2+qctEX+w9Rzm0aNHs2jRIiZOnEi3bt3Izs5m+PDhHDx4kPHjx5uOJ0Gwbi8cOO6/9nb8bI1+tG7ovzbL6+djkLXdumr8zDmoUw16t4H+8VAzxlwuMWvE9RMYecOznDh9hFcWjGbDzuWk9RwNQFrP0aXfHz6+nyf/OJBRg6aajCsGbfkRvtxuvZ6VlEDjenBtPHRvCS6Dw2D/2ujf9j7ZaK2g4XD4t12RirBtwTx//nzmzZtHZmYmKSkpAAwcOJB169axaNEiunbtajihBMPXOYFp01TBvPUnmJsFxe4Lo+bHCqw3mlU74ZEbrWXxJHLVql6P8UPncO9Lrcne9BF9O95W+pjb7Wb6/JGMTptOXP0W5kKKMf/4Dr7YYhWR50eX847A/FXw/T64f4CZojn/qPepGOV14Lj1oSA+zr/tilSEbadkTJs2jUGDBpUWy+e1adOG6OhokpKSOHLkCLfeeivx8fEkJydz0003sXOnn84HiXGnC2HvIf+3uy3fzGnMk2fgnS/LFssXO34G5n5pr1Os4SQrK8t0BJ/Vrl6fu/qP551Pfo/7ors7/PWzybSM60S/jrebC+eDUOrrULI+1yqWoezrxPnvN//o/1FeX239KTDtbgtQuyLlZcuCOS8vj02bNjF06K/XIM3NzSUxMZGqVavicDh47LHHyMnJYcOGDdx6662MGjXKQGIJhLwjgWn39NmyNzsJllW74Fzxledjl5QEZpRGLJs3bzYdoVzu6P87Dh/P57O1fwFg3Y4vWJvzKQ/eMsNwMu9Cra9DRdZW8DY74asc63Um2PYdDq12RcrLllMy8vKs9b/i4sqehykoKCArK4u0tDQA6tatyw033FD6eN++fZkxw7c3E4cmRdlewoBR3DjmnTLbPF1Z7enxx/5e9ufOPQeStzWz4uEq4K4Jy2ncbgAOD6vyl5S4+T+PvET2BxOCmCz0Pf744173mTVrltf9Zs2a5a9IpWb+djnJrVM97vNKeuavttWIqc2iF6xq4fDx/bz+4TimjV5KdJTvt0PLysqkx/CB5YnrlZ37OpxFV63Bw3O9L/Nz+iw079CP/B3ZQUh1wbBJ2VzTtk+ZbRV5vb70tXr197tw3Bh6a5FL+T310h8Bqz67+PtAKinHKV1bFsyxsbEA5OTkMHjw4NLtM2bMID8/n27dul32ea+99hq33357MCJKEDicrpBs+0pcUVU9FssAlJTgdOn+sFLW3z6fwqkzx/jD+/eVbmvaoB2PDfmjuVASVE5XtM/7usrxocpfAvWa6jTwWi1yOY6S8pTXQeJ2u+nSpQv5+fnMnDmTxo0bk5GRwZIlS8jNzWXVqlX06tWrzHMmT57M0qVLWbZsGdWr6z7I4WBDLvxphW/7nh+puHR04kqeSIOm9SuWq6LeW2XdKtbbH9zw3tCrdVAihY1t27Z53adDhw5s3brV4z7t27f3V6RSa96Do4ZumlO3CXS/279t2rmvw5m7BCYtghNnPO/ncMDzt0OdIL8NvrXMuj7EF+V5vW5SD54c7H0/CX1Pv/w2AC89NabM93ZhyznMTqeTBQsWkJiYSHp6OqNGjSI2NpaxY8ficrlISkoqs/+LL77I4sWL+eSTT1Qsh5HG9QLTrssJ19QJTNue9GvrvViuGmUtoyT+N3nyZNMRIob62v+cDujn5T42DqBTk+AXywBNAjQAEah2RcrLllMyAOLj41m+fHmZbffccw8JCQlUq1atdNvkyZNZsmQJn332GXXr1g1ySgmkq2pC7Rhr9Qh/alofogyc5Wt6lbXW8orLLJXnwCqmh/aEKrb9qwxtw4YNMx0hYqivAyO1vXXmbf/RX3/4djigWjT8pouJZNCyQWDabRGgdkXKy5YjzFeyZs2aMvOXN2/ezPPPP8+hQ4dITU2lc+fOdO7c2VxA8SuHw7qhh78Fok1f3dEdbu0M1S+ZYnhVTWv91O4tjcSKCB06dDAdIWKorwMjJhoeuQG6trBGnC/WpiE8djM0MLSOe/trrJsw+VPVKOjSzL9tilRUyIxlnTx5kpycHB5++OHSbYmJieW6wlFCT9+2sGyrdYtsf6gVA10NTnlwOuCGRGuk6Mn3rG2P3miNzmjhFrnU3CXPsPmHr0ls0Y/Rg6ebjiM2UL0q3NMPbu8KExdZ2yb8BhrUNpvL5YT+7WDxev+12acNVPX9WkeRgAqZEeaaNWtSXFzMI488YjqKBFHd6nBrsv/as8uUh4unhLRqqGJZfm3P/k2cOnOcVx/+kuOnD/HDfq1tLBfUumg013SxfF5qe2jkp2tP6teAtCTv+4kEiw1KBxHPBrSD7fs930nKl6ut+7aFpKb+yyWhJTU11XSEctm05yu6x98EQNe2N7JxzwpaxCUaTuWbUOtr8Y8oF9zTF/7nUzhz7sr7eXu9jnLBf/XV6LLYS8iMMEvkcjphVH9rjlxF9WwFQ7r7L5OEntmzZ5uOUC4nTh/mz59O4onZqbz7xVROnA6dW56FWl+L/1xTF357nXUBYkVEu2D0AOvMm4idqGCWkFAlCh5MhVuSrblyvoqJhrt7WWsbe7tniIS39PR00xHKpVb1+tx78wu8kp7JqEEvUqt66KyvFWp9Lf7VItZaOzk+zvu+F2t2lbVGfodGgcklUhmakiEhw+WEGztCcjNYsR2+3Q2FRZfft2ZVazWMa+OtedAimZmZpiOUS8eW1/Lp6nn0TfwPNuzK5OYeo0xH8lmo9bX431U1If06+H4ffJUDO36+8r4tYq116ru2KN+AiEgwqWCWkNOwNtzVw1pv9KejsO8QnCy01jKuU91a6P6aOmbWWhbxl5ZxHYlyRfPE7FQSmvcJmfnLIuc5HNYAR3IzOFZgvVbvPwZni6zX57g61rr49WqYTirinQpmCVlVoqyRiRaxppOIBIaWkpNwUaca1GkCHZuYTiJSMTr5ISIRYevWraYjRAz1tYiEGxXMIhIRPvjgA9MRIob6WkTCjaZkiEhEmDRpEsOGDQv6cWsZXB7L1LFN9bWISKCoYBYRCaB215lOICIilaUpGSIiIiIiHqhgFpGI8Oabb5qOEDHU1yISblQwi0hESEzUOsbBor4WkXCjgllEIkJKSorpCBFDfS0i4UYFs4iIiIiIByqYRUREREQ8UMEsIhGhR48epiNEDPW1iIQbFcwiEhFWr15tOkLEUF+LSLhRwSwiIiIi4oEKZhERERERD1Qwi0hEyMjIMB0hYqivRSTcqGAWEREREfFABbOIRIQhQ4aYjhAx1NciEm6iTAcQEQln25fBiQNmjl2rIbS7zsyxRUTCiQpmEZEAOnEAjuaZTiEiIpWhKRkiEhHGjh1rOkLEUF+LSLhRwSwiEWHcuHGmI0QM9bWIhBsVzCJBdOYcrM+Ff3x3Ydu8FfDpRtiWD8Vuc9nC3YABA0xHiBjq68A5dBJW7YQPvr2w7d2V8OV2+PGIuVwi4U5zmEWC4Ohp+HQTrNkDZ4vKPrY+1/oCqFMN+raFgR2giv46/ergwYOmI1zRE7NT2bp3JS5XNE6ni7h6LRlx/QRSkoeajlYhdu7rULX7AHy2Gbb9BCWXPPbtbusLoNlVcF0HSG4GDkfQY4qELb0liwTYt7th0RprdNmbYwWw9HursB7RB1o2CHw+sYeRN0xk5A3PUlxcxEfZrzP93RG0adyFxrFtTEcTg84WwT/Ww4rtvu2fewjmfQUdm8CwnlC7WkDjiUQMTckQCaAlG6zTpb4Uyxc7eAJe/xw27gtMrkiUkJBgOoJPXK4o0no9SLG7iF0/rTcdp0JCpa/trvAcvLXM92L5Ypvy4H8+taZwiEjlqWAWCZAvt1vTMCqq2G2NFO02tIZvuFm4cKHpCD45V3SWxdmzAWgSG284TcWESl/bmbsE/rQCdldidsuhk1bBXd4P7CLyayqYRQLg52Pw8TrP+7w20vrypNgN76769bxnKb/nnnvOdASP3v1iKrdPrMutv6/Gn/71LOOHzqFVoyQAln47lydmp5Z+jZjajOnvevnlMcjufR0KsndYFwJ74stryMET8JGX1yIR8c7WBbPb7WbmzJm0bduWmJgYkpOTycrKol27dowZM8Z0PJErWrQWivy04sUvJ2DZVv+0VRnniq251f/4zppqsvsAlFx69ZGNLViwwHQEj0ZcP4EPpxwl4/lf6Nl+MBt2Li99LK3naF5Jz+SV9EwmjHyPmCo1GDVoqsG0ntm9ry92qtCa8vDxOmu1mp+PmU4EpwvLrqRTWSt3WnObRaTibH3R3+jRo1m0aBETJ06kW7duZGdnM3z4cA4ePMj48eNNxxO5rJ+Pw3YvI0Pllb0DbkwEl6GPuOv3wvvfQMFFp3Y/3QSN68Go/hBby0yucFSrej3GD53DvS+1JnvTR/TteFvpY263m+nzRzI6bTpx9VuYCxkGSkqs3+FPN5VdznHJ95DYGO7pBzHRZrJ9uwcK/XxW6asc60JiEakY244wz58/n3nz5vHxxx/z5JNPMnDgQCZMmECfPn0oKiqia9eupiOKXNbaPf5v83gB5Oz3f7u+2JxnzaUuuMw8yJ+Owv/7DE6cCXqssFa7en3u6j+edz75PW73hWrur59NpmVcJ/p1vN1cuDDx2WZrRZrLrX2++Ud4e7m5ddHX7PZ/m+v2QlGx/9sViRS2LZinTZvGoEGDSElJKbO9TZs2REdHk5Rkze27/fbbSUpKokuXLvTs2ZPPP//cRFyRUnsDdOozUO16UlICH30HV1rOtaTEWgrvq5ygxqqQrKws0xHK5Y7+v+Pw8Xw+W/sXANbt+IK1OZ/y4C0zDCfzzu59fboQ/rXR8z67D8KWH4OT52Jni6wPov5WVAz5AWhXJFLYckpGXl4emzZt4vHHH//VY7m5uSQmJlK1alUA5s2bR926dQH47rvvSE1N5fDhw7hcrmBGFikVqDelfAN38dp7CA4c975f9g5ISwp8nsrYvHkzDRs2NB3jsl5Jz/zVthoxtVn0wmEADh/fz+sfjmPa6KVER1UJcrrys3NfgzXa6m302AF8sws6NQ1KpFI/H7dWyAiEn45C06sC07ZIuLNtwQwQFxdXZntBQQFZWVmkpaWVbjtfLAMcO3YMh8NBiQ9XIjl0CyQJkN/+f8eoWq126c/ermK/0uOP/b3szx/98xPuT0m7/M4B0qbHXdzyuwyv+504Aw6n09hVgJf7cH2pWbNmed1v1qxZ/opUauZvl5PcOrVSbfzt8ymcOnOMP7x/X+m2pg3a8diQP3p8XlZWJj2GD6zUsS9l5772Vd9hU+n+m6dxOK58krUEWL5yAw8O7By0XACN2vVn6MQvy2zz12vIQ+mPsOGz1yuRTiRwnnrJej1zOBxlvg8kX+rF82xZMMfGxgKQk5PD4MGDS7fPmDGD/Px8unXrVmb/sWPHsnTpUo4dO8bChQuJirLlf5ZECHfR2ZBq15OzBb4tGXCu8FRoLZkRYh698w0evfMN0zHCxtmC4x6LZQC3u5jCU0eDE+ji4wbw77y4qDBgbYuEO0dJecrrIHG73XTp0oX8/HxmzpxJ48aNycjIYMmSJeTm5rJq1Sp69er1q+dlZWXx+OOP8+WXX1KzZk0DyUXgtX/BD7/4sN+/R4UuHQW6koEd4LYgX+taVAyT/tdaeutKHECv1nB376DF+pVt27Z53adDhw5s3ep5fb727dv7K1KpNe/B0Ty/N+uTuk2g+93+bdPOfe2rgydg6sfe9xvSA64N8r1jThXCBO8ndYDyv4aMvQHaXl2xXCKB9vTLbwPw0lNjynxvF7a86M/pdLJgwQISExNJT09n1KhRxMbGMnbsWFwuV+kFf5dKSUnB6XTy9ddfBzmxyAVN64dWu55EuaxC/UocgNMJKeZqH59NnjzZdISIYfe+blALOje78uMOB9SKge4tg5fpvBpV4aoAjfc0qReYdkUigW3nLsTHx7N8+fIy2+655x4SEhKoVq0aACdPnuTQoUM0b94csC7627VrFx06eHiHFwmwpGawws+rRkS7oH0j/7bpq+sS4OhpayUMB9bczvNcTmsd5mvqmslWHsOGDTMdIWKEQl8P722N5u742SqQLz7XWrMqPHy9uXWYk5rCcj/frKhdHFSz//WiIrZl24L5ctasWUPv3hfO+546dYr//M//5OTJk0RFRRETE8Pf/vY3mjXzMHQgEmBtGsLVta2r3f2lWwuobujNzumwTk33bGUVzd/+e43YwUnQuw3UrmYmV3n5Mk3AbuYueYbNP3xNYot+jB483XQcn4VCX1eNhvTrYdtPsGoXfL/P2j60hzWyXNVQsQzQry1kbi374bTSbQZ5aolIuLHllIzLOXnyJDk5OWVuWHL11VezatUqNm3axPr161m1ahW33HKLwZQi1miVP+caV42Cmzv5r72KanZV2TuF3dQpdIrlULRn/yZOnTnOqw9/yfHTh/hh/2bTkcKO0wEJjeH+ARe29Ys3WyyDdefMvm39116rBtCxif/aE4lEITPCXLNmTYqLdZsiCQ0Jja0R2W/9cMeu27tBvRqVb0dCy6Y9X9E9/iYAura9kY17VtAiLtFwKgmW/+gC2/Lh0MnKtRPtguF9rA8HIlJxIVMwi4SaoT2tub9XuqW1L1e2X5cAvVv7N1ekSk1NNR2hXE6cPszilW+xcMUsThYcJSXZ/vOCzwu1vrajqtEwZiC87uHW895eQ6KcMDrFushRRConZKZkiISaaBc8mGqNNJeXy2lN6/hNZ2uKh1Te7NmzTUcol1rV63PvzS/wSnomowa9SK3qBpZJqaBQ62u7uro2PHpTxVa3qFsd0q+D9tf4P5dIJFLBLBJA0S5r3u+DqdCwttfdAWud1CfTrOXcVCz7T3p6uukI5dKx5bVs3G3d8W3Drkw6texvOJHvQq2v7axBLXh8EAxO9m2ViyinddHgU7dAa625LOI3mpIhEgSJjSGhEez8GTbkwr7DcOCEdWOQqlHQqJ61znKPVhBXx3Ta8JSZmWk6Qrm0jOtIlCuaJ2anktC8T0jNXw61vrY7lxNu6gip7WF9LuTkQ+5hOHbaWg6vZgw0qQ+tGkKPltZaziLiXyqYRYLE4YC2cdaXiC9CaSk5CbwqUdYUr4pM8xKRytGUDBERERERD1Qwi0hEsPuNNMKJ+lpEwo2mZIhIRPjggw+M3LK5VsOgH9L4sU31tYhIoKhgFpGIMGnSJCNFXLvrgn5I40z1tYhIoGhKhoiIiIiIByqYRUREREQ8UMEsIhHhzTffNB0hYqivRSTcqGAWkYiQmBg6N/4IdeprEQk3KphFJCKkpKSYjhAx1NciEm5UMIuIiIiIeKCCWUQiQo8ePUxHiBjqaxEJNyqYRSQirF692nSEiKG+FpFwo4JZRERERMQDFcwiIiIiIh6oYBaRiJCRkWE6QsRQX4tIuFHBLCIiIiLigQpmEYkIQ4YMMR0hYqivRSTcRJkOICISzrYvgxMHzBy7VkNod52ZY4uIhBMVzCIiAXTiABzNM51CREQqQ1MyRCQijB071nSEiKG+FpFwo4JZRCLCuHHjTEeIGOprEQk3KphFxCfFbvjpyIWfD52EkhJzecprwIABpiNEjFDq67NFkHvows8nz5jLIiL2pTnMInJF54rhu72waqdVVBS5Lzw25SOoURXaxcG18dCyATgc5rJ6c/DgQdMRruiJ2als3bsSlysap9NFXL2WjLh+AinJQ01HqxA79zXAqUL4djes3g35x8p+8Ht2IdStDklNoV9buLqOuZwiYh8qmEXksrb8CO9/A8cKrrzPqUJYt9f6io+Du3tB/ZrByxhORt4wkZE3PEtxcREfZb/O9HdH0KZxFxrHtjEdLWy4S+DrHPjHemtk+UqOnoYvt1tfvVvDbV2hWpWgxRQRG9KUDBEpw10Ci9bA25mei+VL5eyHl/8Jm226IkRCQoLpCD5xuaJI6/Ugxe4idv203nScCrFjXxeeg7eXw8I1novlS63aBTP+CflHAxZNREKACmYRKVVSAhnfWiNrFVFYBHO/hM0/+jeXPyxcuNB0BJ+cKzrL4uzZADSJjTecpmLs1tdni+CPy2FbfsWef+Q0vP457D/m31wiEjpUMItIqdV7IHun531eG2l9XYm7BP76tXVa206ee+450xE8eveLqdw+sS63/r4af/rXs4wfOodWjZIAWPrtXJ6YnVr6NWJqM6a/6+F/gmF26+vF62G3l2nV3n6vTxXCn1dAUbFfo4lIiLB1wex2u5k5cyZt27YlJiaG5ORksrKyaNeuHWPGjDEdTySsHC+A/13jn7bOnIMPvvFPW/6yYMEC0xE8GnH9BD6ccpSM53+hZ/vBbNi5vPSxtJ6jeSU9k1fSM5kw8j1iqtRg1KCpBtN6Zqe+3nMQVlTwjMml8o/BZ5v905aIhBZbF8yjR49mypQpPPTQQyxdupRhw4YxfPhwdu/eTbdu3UzHEwkrX++AgnP+a2/LT/DjEe/7SVm1qtdj/NA5fLPtn2Rv+qjMY263m+nzRzI6bTpx9VuYCRhiPt8M/lz9MGubNfVIRCKLbQvm+fPnM2/ePD7++GOefPJJBg4cyIQJE+jTpw9FRUV07drVdESRsFHshpU7/N/u1wFoMxLUrl6fu/qP551Pfo/bfWEtv79+NpmWcZ3o1/F2c+FCyOGT1mov/nTmHKz7wb9tioj92bZgnjZtGoMGDSIlJaXM9jZt2hAdHU1SUlKZ7W+//TYOh4OMjIxgxhQJCz8fg+MBuGHDjv3+b7OisrKyTEcolzv6/47Dx/P5bO1fAFi34wvW5nzKg7fMMJzMO7v09Y6f/Tu6fF6OjX6vRSQ4bLkOc15eHps2beLxxx//1WO5ubkkJiZStWrV0m07duzgT3/6E7179w5mTJGwse9wYNo9eAIKztpjDdvNmzfTsGFD0zEu65X0zF9tqxFTm0UvWP9jDh/fz+sfjmPa6KVER9mgM72wS1/nBej3et8h7/uISHixbcEMEBcXV2Z7QUEBWVlZpKWllW4rKiri/vvvZ/bs2Tz22GM+H8Nh51uSiQRZz9ufpc+QKWW2eVoxwNPjj/297M+NW3bgyE/bKpHOu8t9uL7UrFmzvO43a9Ysf0UqNfO3y0lunVqpNv72+RROnTnGH96/r3Rb0wbteGzIHz0+Lysrkx7DB1bq2Jeyc19f6pbHFtGm+x1ltvnj93r/4QIcjuqVTCciF3vqJev1zOFwlPk+kEpKfD8HZcuCOTY2FoCcnBwGDx5cun3GjBnk5+eXueBvypQppKWl0blz52DHFAkjgXtRcgSw7Ujx6J1v8Oidb5iOEXIC97un32mRSGPLgrlVq1YkJSUxbdo06tevT+PGjcnIyGDJkiUApQXzN998w7Jly8jMzCz3McrzqUIk3H2dAwtWl9126UjxeedH4K70+KX27tpCzZiKZ/PFtm3eR7BnzZrldTnKV1991V+RSq15D44auvthSkoqJbP9+1pn576+1PvfwMpL1hX3x+91bN0YvYeI+NnTL78NWPXZxd/bhS0v+nM6nSxYsIDExETS09MZNWoUsbGxjB07FpfLVXrB3/Lly9m1axetW7emRYsWrFq1iocffphXXnnF8H+BSGhpUj8w7datTsCLZV9NnjzZdISIYZe+blIvQO0G6O9FROzLliPMAPHx8SxfvrzMtnvuuYeEhASqVasGwNNPP83TTz9d+nhqairjxo1jyJAhQc0qEuoa1YOYaGvJLH9qbf66r1LDhg0zHSFi2KWvW18doHZt9HstIsFhyxHmK1mzZo1uWCISANEu6NHK/+32aeP/NiuqQ4cOpiNEDLv0dVwdaNnAv21GOaFHS/+2KSL2FzIF88mTJ8nJyfF4w5LMzEyNLotU0IB4cPnxFaFpfY3EVdbcJc8w/s0BzF3yjOkoIWugn2v3nq3sM81IRIInZArmmjVrUlxczCOPPGI6ikhYalAbBnXyT1suJwzvDVq9seL27N/EqTPHefXhLzl++hA/7N9sOlJISmoKyc3801adanBrF/+0JSKhxbZzmEUk+K5LgF0HYFv+lffxZRWBO7pZ86LtJDU11XSEctm05yu6x98EQNe2N7JxzwpaxCUaTuUbu/X10B7w0xHrRjpX4u33OsoJ9/SD6va/b4yIBEDIjDCLSOC5nHD/AEhoVLHnO7CK5Wvj/RrLL2bPnm06QrmcOH2YP386iSdmp/LuF1M5cTpAt60LALv1dc0YGHsDXF27Ys+vEgUPpEKbAF1EKCL2p4JZRMqoEgUPpMDtXSHK5fvzYmvBIzdCSvvAZauM9PR00xHKpVb1+tx78wu8kp7JqEEvUqt66KxlZse+rlsdxqdB/3J+mGvdEP57MLS/JjC5RCQ0aEqGiPyK0wmpHay5n9k7YOUuOHnm8vs2qQ/XtoWuLaxi264qcoMjkzq2vJZPV8+jb+J/sGFXJjf3GGU6ks/s2tdVo+CuHtC7DXyVA2t/gLNFv97PAbS7Bvq1hcQm4NRcfJGIZ+O3NxExrV4NuKUzpCXDoROQdwROF1oX89WrYa2EoRUDAqNlXEeiXNE8MTuVhOZ9Qmb+cihoXA/+sxcM6QH7j1nzmwuLrClJDWtbj8dEm04pInaigllEvHI6rFU0GlRwDqhUzOjB001HCGsup1UcN7bZBaoiYj+awywiEWHr1q2mI0QM9bWIhBsVzCISET744APTESKG+lpEwo2mZIhIRJg0aRLDhg0L+nFrGbzboaljm+prEZFAUcEsIhJA7a4znUBERCpLUzJERERERDxQwSwiEeHNN980HSFiqK9FJNyoYBaRiJCYqHWMg0V9LSLhRgWziESElJQU0xEihvpaRMKNCmYREREREQ9UMIuIiIiIeKBl5UQk5LVv397rPpMmTfJpP/FMfS0ikUgjzCISEZ5//nnTESKG+lpEwo0KZhERERERD1Qwi4iIiIh4oIJZRERERMQDFcwiIiIiIh6oYBYRERER8UAFs4iIiIiIByqYRURERCSkZWZmkpiYSJs2bXjggQcoLi72a/sqmEVEREQkZLndbh544AEWLFjAzp07OX78OH/729/8egwVzCIiIiISslavXk2jRo1ISEgAYPTo0SxcuNCvx1DBLCIiIiIhKy8vj6ZNm5b+3KxZM/bt2+fXY0T5tTURERERES9KSkr48NOvyP3pQJnt//OnhZf9vntSO/p163jFtgJNI8wiIiIiElQOh4Nre3Til8NHyT9wqHT7pd/nHzjEuXNF9OjU7optNW3atMyIcm5uLk2aNPFrXhXMIiIiIhJ0DerX5Zbr+njcx+FwMOyWVKpUib7iPt27dycvL48tW7YAMHfuXO68806/ZlXBLCIiIiJG9OrcgfiWTa/4+MA+XWjW+GqPbbhcLubMmcOQIUNo3bo1NWvW5J577vFrTkdJMCZ+iIiIiIhcxvETp3jtnQxOnykss71xXCwP/9ftuFzmx3fNJxARERGRiFW7Vg1uv7l/mW1RUS7+85aBtiiWIQwK5o0bN3LXXXcRGxtLTEwMbdu2ZcKECaZjiYiIiIiPktq3oktim9Kf01J60TC2nsFEZYX0snJr165lwIABNG3alD/84Q80b96cPXv2kJ2dbTqaiIiIiJTDf9zQj925+TSoX5c+3RJNxykjpOcwp6amsmXLFnbs2EGdOnXK9dynX347QKlERERExO5eemqMz/uG7JSM06dPs2LFCoYPH17uYllERERExFchOyXjyJEjuN3uCi9MXZ5PFSIiIiISuUK2YK5Xrx5Op5Mff/yxQs/XlAwRERGRyBURUzKqV6/OgAEDmD9/PsePHzcdR0RERETCVEhf9Hd+lYzmzZvz3//93zRv3pzc3FxWrFjBnDlzTMcTERERkTAQslMyALp168bKlSuZOHEijz/+OGfOnKFp06bcfffdpqOJiIiISJgI6RFmEREREZFAC9k5zCIiIiIiwaCCWURERETEAxXMIiIiIiIeqGAWEREREfFABbOIiIiIiAcqmEVEREREPFDBLCIiIiLigQpmEREREREPVDCLiIiIiHiggllERERExAMVzCIiIiIiHqhgFhERERHxQAWziIiIiIgHKphFRERERDxQwSwiIiIi4oEKZhERERERD1Qwi4iIiIh4oIJZRERERMQDFcwiIiIiIh6oYBYRERER8UAFs4iIiIiIByqYRUREREQ8UMEsIiIiIuKBCmYREREREQ9UMIuIiIiIeKCCWURERETEAxXMIiIiIiIeqGAWEREREfFABbOIiIiIiAf/P3hSAyCII6yJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 929.397x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from qiskit.circuit import Parameter\n",
    "\n",
    "theta = Parameter('θ')\n",
    "\n",
    "n = 5\n",
    "\n",
    "qc = QuantumCircuit(5, 1)\n",
    "\n",
    "qc.h(0)\n",
    "for i in range(n-1):\n",
    "    qc.cx(i, i+1)\n",
    "\n",
    "qc.barrier()\n",
    "qc.rz(theta, range(5))\n",
    "qc.barrier()\n",
    "\n",
    "for i in reversed(range(n-1)):\n",
    "    qc.cx(i, i+1)\n",
    "qc.h(0)\n",
    "qc.measure(0, 0)\n",
    "\n",
    "qc.draw('mpl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can inspect the circuit's parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:44.155858Z",
     "start_time": "2021-07-31T04:57:44.152156Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ParameterView([Parameter(θ)])\n"
     ]
    }
   ],
   "source": [
    "print(qc.parameters)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Binding parameters to values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All circuit parameters must be bound before sending the circuit to a backend. This can be done as follows:\n",
    "- The `bind_parameters` method accepts a dictionary mapping `Parameter`s to values, and returns a new circuit with each parameter replaced by its corresponding value. Partial binding is supported, in which case the returned circuit will be parameterized by any `Parameter`s that were not mapped to a value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T04:57:45.686901Z",
     "start_time": "2021-07-31T04:57:45.566396Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"word-wrap: normal;white-space: pre;background: #fff0;line-height: 1.1;font-family: &quot;Courier New&quot;,Courier,monospace\">     ┌───┐                     ░ ┌────────┐ ░                     ┌───┐┌─┐\n",
       "q_0: ┤ H ├──■──────────────────░─┤ Rz(2π) ├─░──────────────────■──┤ H ├┤M├\n",
       "     └───┘┌─┴─┐                ░ ├────────┤ ░                ┌─┴─┐└───┘└╥┘\n",
       "q_1: ─────┤ X ├──■─────────────░─┤ Rz(2π) ├─░─────────────■──┤ X ├──────╫─\n",
       "          └───┘┌─┴─┐           ░ ├────────┤ ░           ┌─┴─┐└───┘      ║ \n",
       "q_2: ──────────┤ X ├──■────────░─┤ Rz(2π) ├─░────────■──┤ X ├───────────╫─\n",
       "               └───┘┌─┴─┐      ░ ├────────┤ ░      ┌─┴─┐└───┘           ║ \n",
       "q_3: ───────────────┤ X ├──■───░─┤ Rz(2π) ├─░───■──┤ X ├────────────────╫─\n",
       "                    └───┘┌─┴─┐ ░ ├────────┤ ░ ┌─┴─┐└───┘                ║ \n",
       "q_4: ────────────────────┤ X ├─░─┤ Rz(2π) ├─░─┤ X ├─────────────────────╫─\n",
       "                         └───┘ ░ └────────┘ ░ └───┘                     ║ \n",
       "c: 1/═══════════════════════════════════════════════════════════════════╩═\n",
       "                                                                        0 </pre>"
      ],
      "text/plain": [
       "     ┌───┐                     ░ ┌────────┐ ░                     ┌───┐┌─┐\n",
       "q_0: ┤ H ├──■──────────────────░─┤ Rz(2π) ├─░──────────────────■──┤ H ├┤M├\n",
       "     └───┘┌─┴─┐                ░ ├────────┤ ░                ┌─┴─┐└───┘└╥┘\n",
       "q_1: ─────┤ X ├──■─────────────░─┤ Rz(2π) ├─░─────────────■──┤ X ├──────╫─\n",
       "          └───┘┌─┴─┐           ░ ├────────┤ ░           ┌─┴─┐└───┘      ║ \n",
       "q_2: ──────────┤ X ├──■────────░─┤ Rz(2π) ├─░────────■──┤ X ├───────────╫─\n",
       "               └───┘┌─┴─┐      ░ ├────────┤ ░      ┌─┴─┐└───┘           ║ \n",
       "q_3: ───────────────┤ X ├──■───░─┤ Rz(2π) ├─░───■──┤ X ├────────────────╫─\n",
       "                    └───┘┌─┴─┐ ░ ├────────┤ ░ ┌─┴─┐└───┘                ║ \n",
       "q_4: ────────────────────┤ X ├─░─┤ Rz(2π) ├─░─┤ X ├─────────────────────╫─\n",
       "                         └───┘ ░ └────────┘ ░ └───┘                     ║ \n",
       "c: 1/═══════════════════════════════════════════════════════════════════╩═\n",
       "                                                                        0 "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "theta_range = np.linspace(0, 2 * np.pi, 128)\n",
    "\n",
    "circuits = [qc.bind_parameters({theta: theta_val})\n",
    "            for theta_val in theta_range]\n",
    "\n",
    "circuits[-1].draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:01:45.524926Z",
     "start_time": "2021-07-31T05:01:44.775721Z"
    }
   },
   "outputs": [],
   "source": [
    "backend = BasicAer.get_backend('qasm_simulator')\n",
    "job = backend.run(transpile(circuits, backend))\n",
    "counts = job.result().get_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the example circuit, we apply a global $R_z(\\theta)$ rotation on a five-qubit entangled state, and so expect to see oscillation in qubit-0 at $5\\theta$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:01:48.240446Z",
     "start_time": "2021-07-31T05:01:47.870931Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f8fcb307710>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "fig = plt.figure(figsize=(8,6))\n",
    "ax = fig.add_subplot(111)\n",
    "\n",
    "ax.plot(theta_range, list(map(lambda c: c.get('0', 0), counts)), '.-', label='0')\n",
    "ax.plot(theta_range, list(map(lambda c: c.get('1', 0), counts)), '.-', label='1') \n",
    "\n",
    "ax.set_xticks([i * np.pi / 2 for i in range(5)])\n",
    "ax.set_xticklabels(['0', r'$\\frac{\\pi}{2}$', r'$\\pi$', r'$\\frac{3\\pi}{2}$', r'$2\\pi$'], fontsize=14)\n",
    "ax.set_xlabel('θ', fontsize=14)\n",
    "ax.set_ylabel('Counts', fontsize=14)\n",
    "ax.legend(fontsize=14)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reducing compilation cost"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compiling over a parameterized circuit prior to binding can, in some cases, significantly reduce compilation time as compared to compiling over a set of bound circuits."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:01:54.386016Z",
     "start_time": "2021-07-31T05:01:51.644668Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Time compiling over set of bound circuits:  2.4267938137054443\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "from itertools import combinations\n",
    "from qiskit.compiler import assemble\n",
    "from qiskit.providers.fake_provider import FakeVigo\n",
    "\n",
    "start = time.time()\n",
    "qcs = []\n",
    "\n",
    "theta_range = np.linspace(0, 2*np.pi, 32)\n",
    "\n",
    "for n in theta_range:\n",
    "    qc = QuantumCircuit(5)\n",
    "\n",
    "    for k in range(8):\n",
    "        for i,j in combinations(range(5), 2):\n",
    "            qc.cx(i,j)\n",
    "        qc.rz(n, range(5))\n",
    "        for i,j in combinations(range(5), 2):\n",
    "            qc.cx(i,j)\n",
    "\n",
    "    qcs.append(qc)\n",
    "    \n",
    "compiled_circuits = transpile(qcs, backend=FakeVigo())\n",
    "qobj = assemble(compiled_circuits, backend=FakeVigo())\n",
    "\n",
    "end = time.time()\n",
    "print('Time compiling over set of bound circuits: ', end-start)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:02:12.453279Z",
     "start_time": "2021-07-31T05:02:10.997358Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Time compiling over parameterized circuit, then binding:  1.4472951889038086\n"
     ]
    }
   ],
   "source": [
    "start = time.time()\n",
    "qc = QuantumCircuit(5)\n",
    "theta = Parameter('theta')\n",
    "\n",
    "for k in range(8):\n",
    "    for i,j in combinations(range(5), 2):\n",
    "        qc.cx(i,j)\n",
    "    qc.rz(theta, range(5))\n",
    "    for i,j in combinations(range(5), 2):\n",
    "        qc.cx(i,j)\n",
    "\n",
    "transpiled_qc = transpile(qc, backend=FakeVigo())\n",
    "qobj = assemble([transpiled_qc.bind_parameters({theta: n})\n",
    "                 for n in theta_range], backend=FakeVigo())\n",
    "end = time.time()\n",
    "print('Time compiling over parameterized circuit, then binding: ', end-start)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Composition"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Parameterized circuits can be composed like standard `QuantumCircuit`s.\n",
    "Generally, when composing two parameterized circuits, the resulting circuit will be parameterized by the union of the parameters of the input circuits."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, parameter names must be unique within a given circuit.\n",
    "When attempting to add a parameter whose name is already present in the target circuit:\n",
    " - if the source and target share the same `Parameter` instance, the parameters will be assumed to be the same and combined\n",
    " - if the source and target have different `Parameter` instances, an error will be raised\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:02:12.469556Z",
     "start_time": "2021-07-31T05:02:12.455911Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     ┌────────────┐┌────────────┐\n",
      "q_0: ┤0           ├┤0           ├\n",
      "     │  sc_1(phi) ││  sc_2(phi) │\n",
      "q_1: ┤1           ├┤1           ├\n",
      "     ├────────────┤└────────────┘\n",
      "q_2: ┤0           ├──────────────\n",
      "     │  sc_2(phi) │              \n",
      "q_3: ┤1           ├──────────────\n",
      "     └────────────┘              \n"
     ]
    }
   ],
   "source": [
    "phi = Parameter('phi')\n",
    "\n",
    "sub_circ1 = QuantumCircuit(2, name='sc_1')\n",
    "sub_circ1.rz(phi, 0)\n",
    "sub_circ1.rx(phi, 1)\n",
    "\n",
    "sub_circ2 = QuantumCircuit(2, name='sc_2')\n",
    "sub_circ2.rx(phi, 0)\n",
    "sub_circ2.rz(phi, 1)\n",
    "\n",
    "qc = QuantumCircuit(4)\n",
    "qr = qc.qregs[0]\n",
    "\n",
    "qc.append(sub_circ1.to_instruction(), [qr[0], qr[1]])\n",
    "qc.append(sub_circ2.to_instruction(), [qr[0], qr[1]])\n",
    "\n",
    "qc.append(sub_circ2.to_instruction(), [qr[2], qr[3]])\n",
    "\n",
    "qc.draw()\n",
    "\n",
    "# The following raises an error: \"QiskitError: 'Name conflict on adding parameter: phi'\"\n",
    "# phi2 = Parameter('phi')\n",
    "# qc.u3(0.1, phi2, 0.3, 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To insert a subcircuit under a different parameterization, the `to_instruction` method accepts an optional argument (`parameter_map`) which, when present, will generate instructions with the source parameter replaced by a new parameter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:02:13.856680Z",
     "start_time": "2021-07-31T05:02:13.837242Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       ┌────────────────┐\n",
      "q24_0: ┤0               ├\n",
      "       │                │\n",
      "q24_1: ┤1 oracle(theta) ├\n",
      "       │                │\n",
      "q24_2: ┤2               ├\n",
      "       └┬──────────────┬┘\n",
      "q24_3: ─┤0             ├─\n",
      "        │              │ \n",
      "q24_4: ─┤1 oracle(phi) ├─\n",
      "        │              │ \n",
      "q24_5: ─┤2             ├─\n",
      "       ┌┴──────────────┴┐\n",
      "q24_6: ┤0               ├\n",
      "       │                │\n",
      "q24_7: ┤1 oracle(gamma) ├\n",
      "       │                │\n",
      "q24_8: ┤2               ├\n",
      "       └────────────────┘\n",
      "       ┌───────────┐                                    \n",
      "q24_0: ┤ Rz(theta) ├──■─────────────────────────────────\n",
      "       └───────────┘┌─┴─┐┌───────────┐                  \n",
      "q24_1: ─────────────┤ X ├┤ Rz(theta) ├──■───────────────\n",
      "                    └───┘└───────────┘┌─┴─┐┌───────────┐\n",
      "q24_2: ───────────────────────────────┤ X ├┤ Rz(theta) ├\n",
      "        ┌─────────┐                   └───┘└───────────┘\n",
      "q24_3: ─┤ Rz(phi) ├───■─────────────────────────────────\n",
      "        └─────────┘ ┌─┴─┐ ┌─────────┐                   \n",
      "q24_4: ─────────────┤ X ├─┤ Rz(phi) ├───■───────────────\n",
      "                    └───┘ └─────────┘ ┌─┴─┐ ┌─────────┐ \n",
      "q24_5: ───────────────────────────────┤ X ├─┤ Rz(phi) ├─\n",
      "       ┌───────────┐                  └───┘ └─────────┘ \n",
      "q24_6: ┤ Rz(gamma) ├──■─────────────────────────────────\n",
      "       └───────────┘┌─┴─┐┌───────────┐                  \n",
      "q24_7: ─────────────┤ X ├┤ Rz(gamma) ├──■───────────────\n",
      "                    └───┘└───────────┘┌─┴─┐┌───────────┐\n",
      "q24_8: ───────────────────────────────┤ X ├┤ Rz(gamma) ├\n",
      "                                      └───┘└───────────┘\n"
     ]
    }
   ],
   "source": [
    "p = Parameter('p')\n",
    "qc = QuantumCircuit(3, name='oracle')\n",
    "qc.rz(p, 0)\n",
    "qc.cx(0, 1)\n",
    "qc.rz(p, 1)\n",
    "qc.cx(1, 2)\n",
    "qc.rz(p, 2)\n",
    "\n",
    "theta = Parameter('theta')\n",
    "phi = Parameter('phi')\n",
    "gamma = Parameter('gamma')\n",
    "\n",
    "qr = QuantumRegister(9)\n",
    "larger_qc = QuantumCircuit(qr)\n",
    "larger_qc.append(qc.to_instruction({p: theta}), qr[0:3])\n",
    "larger_qc.append(qc.to_instruction({p: phi}), qr[3:6])\n",
    "larger_qc.append(qc.to_instruction({p: gamma}), qr[6:9])\n",
    "larger_qc.draw()\n",
    "\n",
    "larger_qc.decompose().draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-07-31T05:02:16.955198Z",
     "start_time": "2021-07-31T05:02:16.224522Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td><code>qiskit-terra</code></td><td>0.19.0.dev0+be0ed5f</td></tr><tr><td><code>qiskit-aer</code></td><td>0.8.2</td></tr><tr><td><code>qiskit-ignis</code></td><td>0.6.0</td></tr><tr><td><code>qiskit-ibmq-provider</code></td><td>0.16.0.dev0+4e20edc</td></tr><tr><th>System information</th></tr><tr><td>Python</td><td>3.7.7 (default, May  6 2020, 04:59:01) \n",
       "[Clang 4.0.1 (tags/RELEASE_401/final)]</td></tr><tr><td>OS</td><td>Darwin</td></tr><tr><td>CPUs</td><td>6</td></tr><tr><td>Memory (Gb)</td><td>32.0</td></tr><tr><td colspan='2'>Sat Jul 31 01:02:16 2021 EDT</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>&copy; Copyright IBM 2017, 2021.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import qiskit.tools.jupyter\n",
    "%qiskit_version_table\n",
    "%qiskit_copyright"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "nteract": {
   "version": "0.22.4"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
